package pms.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import pms.dao.JahrDao;
import pms.om.Jahr;

/**
 * <p>
 * Ein Controller, der die Jahre editiert
 * </p>
 * <p>
 * ModelAndView Infos
 * <p>
 * Es wird ein Jahr anhand seiner ID gesucht, falls es dieses gibt,
 * wird dieses geaendert, ansonsten wird ein neues Jahr angelegt.
 * <ul>
 * <li>title: Ueberschrift dieser View</li>
 * <li>message: Hinweise fuer den Benutzer</li>
 * <li>jahr: hier wird das gesuchte Jahr ausgegeben, falls es
 * schon angelegt ist, ansonsten wird ein neues Jahrangelegt.</li>
 * </ul>
 * Der Name der ausgebenden View ist: 'editJahr.jsp'
 * </p>
 * @see JahrDao
 */

public class EditJahr extends AbstractController {

	private JahrDao jahrDao;
	
	public JahrDao getJahrDao() {
		return jahrDao;
	}

	public void setJahrDao(JahrDao jahrDao) {
		this.jahrDao = jahrDao;
	}

	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception {
		ModelAndView mv = new ModelAndView();
		try {
			int id = Integer.parseInt(httpServletRequest.getParameter("id"));
			// wenn id nicht geparsed werden kann, dann wird ein neues Objekt angelegt
			mv.addObject("title", "Jahr ändern");
			mv.addObject("message", "Hier können Sie das Jahr abändern. Klicken Sie dann anschließend auf Übernehmen.");
			mv.addObject("jahr", jahrDao.findById(id));
		} catch (NumberFormatException e) {
			mv.addObject("title", "Neues Jahr eintragen");
			mv.addObject("message", "Bitte geben Sie die Jahreszahl ein und klicken Sie anschließend auf 'Übernehmen'.");
			mv.addObject("jahr", new Jahr());
		}
		mv.setViewName("editJahr");
		return mv;
	}
}
